#ifndef _GUN_ENEMY_ENTITY_H_
#define _GUN_ENEMY_ENTITY_H_

#include "GunEnemyData.h"
#include "AbstractEntity.h"

class GunEnemyEntity : public AbstractEntity
{
private:
	GunEnemyData* _armyData;
	int life;
	//************************************
	// Method:    updateForShoot
	// FullName:  GunEnemyEntity::updateForShoot
	// Access:    virtual private 
	// Returns:   void
	// Qualifier:
	//************************************
	virtual void updateForShoot();
public:
	//************************************
	// Method:    GunEnemyEntity
	// FullName:  GunEnemyEntity::GunEnemyEntity
	// Access:    public 
	// Returns:   
	// Qualifier:
	// Parameter: int id
	// Parameter: int type
	// Parameter: double x
	// Parameter: double y
	// Parameter: Rect * target
	//************************************
	GunEnemyEntity(int id, int type, double x, double y, Rect* target);

	//************************************
	// Method:    update
	// FullName:  GunEnemyEntity::update
	// Access:    virtual public 
	// Returns:   void
	// Qualifier:
	// Parameter: long time
	//************************************
	virtual void update(long time);

	//************************************
	// Method:    draw
	// FullName:  GunEnemyEntity::draw
	// Access:    virtual public 
	// Returns:   void
	// Qualifier:
	// Parameter: long time
	//************************************
	virtual void draw(long time);

	//************************************
	// Method:    getAbstractData
	// FullName:  GunEnemyEntity::getAbstractData
	// Access:    virtual public 
	// Returns:   AbstractData*
	// Qualifier:
	//************************************
	virtual AbstractData* getAbstractData();

	//************************************
	// Method:    updateData
	// FullName:  GunEnemyEntity::updateData
	// Access:    virtual public 
	// Returns:   void
	// Qualifier:
	// Parameter: int action
	// Parameter: int actiondata
	//************************************
	virtual void updateData(int action, int actiondata);

	//************************************
	// Method:    ~GunEnemyEntity
	// FullName:  GunEnemyEntity::~GunEnemyEntity
	// Access:    public 
	// Returns:   
	// Qualifier:
	//************************************
	~GunEnemyEntity(){}

};
#endif